perm filename E.UPD[UP,DOC]10 blob sn#336174 filedate 1978-02-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	All information in this file is included in E.ALS[UP,DOC].
C00003 00003	1975
C00013 00004	1976
C00051 00005	1977
C00092 ENDMK
C⊗;
All information in this file is included in E.ALS[UP,DOC].

This file is merely a HISTORY of the changes to E.

Contained herein are past news items that have now been merged
into the E manual.  Everything mentioned in this file has been
documented in the E manual E.ALS[UP,DOC] (the "?"  file).

Page references in this file refer to pages in E.ALS[UP,DOC],
but these references are not guaranteed to be currently accurate.

1975

∂1975 -- UDP files are remembered on file switching (maybe almost right).

∂1975 -- Formerly fatal errors kludged around.
Some formerly fatal errors no longer cause E to HALT, although the
fix may not always work and E may crash later after all. 

∂6/75 -- The main timing problem on entering the line editor is fixed.
Now you can type ahead characters meant for the line editor without
waiting for the line editor to be set up after you have given a
command to edit a particular line.  The fix involved a system modification.

∂6/75 -- Unexpected errors encountered by E are now automatically recorded.
An FBI program reports most of the mal-functionings to ALS when you
get into trouble and you may hear from him for more details if he
thinks that he can do something for you (or vice versa).

∂6/75 -- /F and /F/R modes break long pages up by inserting FFs.
See p. 20.

∂7/75 -- Bug in formatting SOS files fixed.
A recent bug in formatting SOS files has been fixed. Users are still
advised to repage such files with the /F switch if this is a
reasonable thing to do. 

∂7/75 -- α<cr> restores previous line editor line when typing filename.
When you get the message "Try again" after specifying a file name
with some error, it is now possible to invoke the <control><cr> line
editor command to recall what you had typed so that you need not type
everything over again. Most of the time this does not work but it
does here. 

∂7/75 -- The α* and αβ* commands repeat the last search command given.
See p. 13.

∂7/75 -- The ⊗; and ⊗: commands move straight up and down inside line editor.
The commands ⊗; and ⊗: do the same thing as ⊗↑ and ⊗↓ respectively,
except that instead of positioning you at the end of the new line,
they position you at the display column where you were when you gave
the command.  Thus these commands move you (inside the line editor)
straight up and down, except that if the display column is in the
middle of a tab on the new line, then you are positioned at the
beginning of that tab and if the display column is beyond the end of
the newly edited line, you are positioned at the end of that line. 

∂8/75 -- After exiting from E, the monitor command CONTINUE restores E
at the same line and page from which the command to exit was given. 

∂8/75 -- Entering and leaving the line editor now does not set the
WRITE flag unless the line is actually changed.

∂8/75 -- Parenthesis finding/matching commands available. See p. 22.

∂9/75 -- The ⊗H (Home) and ⊗? commands now will take arguments. See p. 15.

∂9/75 -- Type ahead for line editor improved.

∂9/75 -- ⊗0⊗W and ⊗0⊗L now move half a window in the indicated direction.

∂9/75 -- Attempting to move the arrow off the screen usually caused the
window to be reset with the arrow in the middle of the window.

∂9/75 -- ⊗XLINCNT now reports the length of the current line and the
number of characters on the current page.

∂10/1/75 -- New partial-sign command ⊗∂<cmd>. See p. 24.

∂10/7/75 -- ⊗V redraws the screen on Data Disc displays without erasing.
αβV still erases before redrawing.

∂10/7/75 -- ⊗XBURP command causes RIPPLING to discard any whole records
of nulls from the current page only.

∂10/7/75 -- Macro defining and calling commands (⊗XDEFINE and ⊗Y) save
the user from having to type the same sequence of commands several times.
See p. 25. 

∂10/9/75 -- Punctuation-at-end-of-line bug in XJUST command fixed.

∂10/16/75 -- Bug fixed in macro calls.

∂10/17/75 -- Un-copy-attach bug fixed. 
An attempt to detach more lines than are in the ATTACH buffer no longer
causes trouble. The current line cursor may not be left where you expect
it to be but E does not blow up.

∂10/28/75 -- E now permits lines containing up to 133 characters to be
transfered to the line editor for editing (the previous limit was 120).

Lines longer than these limits may be broken up by XJUST and XJFILL
commands.  Their lengths may be ascertained by the XLINCNT command.

∂11/11/75 -- Automatic directory updating for extended files.
If you edit with E a file that has been extended by some other
program, E will automatically update the directory.  However, the
updated directory will not be written out until some other page of
the file has been changed and is being written on the disk.  The
extended part of the file must be formatted correctly for E, which
simply means that any formfeeds found in that part of the file must
occur as the first character in a (200-word) record; otherwise, the
file must be reformatted and a new directory generated.  When a file
has been extended properly, E will say how many pages have been
added to the file, or if none, how many records have been added to
the last page.

∂11/13/75 -- XSPOOL and XXSPOOL commands, will now spool the ATTACH buffer.

∂11/20/75 -- E files extended by other programs.
E can handle easily almost any file that has been extended by
another program even though the directory has not been updated by
that program.  The single restriction is that the file must remain in
correct E format with Formfeeds occurring only as the first
character in a record.  MAIL and RCV extend files ok.  See p. 28.

∂11/20/75 -- The trailer line on the screen has been changed.  See p. 5.

∂12/5/75 -- When more than 8 files are referenced, by file switching
commands,  E  now gives the new file the referencing number that was
assigned to the longest-unreferenced file.  The user is warned of this
reassignment.

∂12/11/75 -- A new X command, XPROTECTION, is now available.
See p. 18 for details.

A warning is given when one enters a file that has the 400 protection
bit set (such files are not saved by DART).

∂12/12/75 -- New X commands: XMAIL, XSEND, XREMIND.  See p. 18.

∂12/14/75 -- XMARK now works in ATTACH mode.  See p. 18.

1976

∂1/16/76 -- Several new extended commands have been added
to allow TTY/Imlac users to execute commands that previously were
available only through certain characters not generally typeable on
TTYs; see p. 29.  The XMARK command and XINSERT and β<FORM> are now
illegal in /N mode; they always used to die horribly in /N mode
anyway (will be fixed eventually).  Bug in \ command fixed to clear
ESC I flag and clear search page number at top.  XEXIST and ∃
commands includes "R" for current file if open in Readonly mode (for
ttys).  /N included in filename displayed when in no-directory mode.
Various other improvements in tty/imlac service.  XTYPE command (old
command) now accepts search distance as amount to type out; mainly
useful in conjuction with new XMSG (XPARTIAL) commands:
XMSG<cr>XTYPE<cr> will type out current message in mail files, or
current page if no ∂'s.  Certain filehacks (eg, \GRIPES) can be
typed to E where filename is expected; allows easy abbreviation of
names of certain files on [2,2]--see p. 30.

∂2/4/76 -- New commands XLPAREN and XRPAREN.  See p. 22 for details.

∂2/13/76 -- Changes to commands FF, VT, L, T, B.  New commands ∧ and ∨.
All users are urged to refer to p. 7 for details of these changes which are
quite extensive and which make window moving much easier.

∂2/14/76 -- Searching from first character on line.  Null substitution.
The old E bug causing searches to ignore the first character of the
current line is fixed!  Also, the null substitution string bug has
been fixed completely now (we think).

∂3/19/76 -- The old limit of 511 characters on a line has been removed.

XBREAK will break lines (of any length) at specified column position.  See p. 12.

The XJOIN command has been modified to join lines without introducing
spaces for deleted CRLFs.  (It now undoes an XBREAK.)  See p. 12 for details.

Up to 23 marks in a file allowed (page and line numbers limited to 262142).

The repeat argument limit of 510 has been increased to 262142.

The ≤ and ≥ commands now take repeat numeric arguments.

The Z command (Imlacs only) now accepts a numeric arg which causes an
L command to be simulated with that (relative or absolute) arg first.

∂3/22/76 -- New switch /13E begins edit at end of page 13.
/E (no argument) begins edit at end of the file's last page.

An old bug has been fixed that caused characters to be lost from the middle
of a message file when rippling occurred if the file was bigger than 8K.

Any number of substitutions can now be done explicitly and E will
no longer stop and request confirmation after 100 have been done.

∂4/6/76 -- Several minor new features.
A page bloated by more than 18 records will automatically be burped
   when written out.
⊗#⊗V waits # seconds after displaying screen if # is positive; useful in macros.
Bug fix in macro expansion for αK and αS followed by activator.
⊗T and ⊗B made legal from line editor, but they will not move arrow
   in that case; that is, the arrow line will not glitch past edge of
   screen when these commands are given from the line editor.
⊗G and ⊗π commands removed (they have never been documented,
   so don't look for them).
Window position (as well as arrow line) maintained on exit followed by CONTINUE.

∂4/9/76 -- More minor changes/bug fixes.
After E has made you confirm a null substitution command, it no longer
   forces the first substitution to be done with the line editor.
⊗R command (replace attach buffer) no longer dies if you have switched
   files.  Gives error message instead.
⊗XRSYS ⊗XRUN ⊗XTV commands fixed not to spuriously set "command given
   from line editor" bit when swapping in new program.
⊗XBACKGO command modified to restore window position on page returning to.
α<space> in macros has been fixed (was broken when αK was fixed on 4/6/76).

∂4/11/76 -- Line redrawing bugs fixed.
For a long time (since last summer), E has failed to redraw (on DD) any
line which was entered into the line editor with a non-line-editor
command (commands other than αS α<space> α<tab> etc.) and which was
activated with altmode.  This bug has finally been fixed, and it is now
claimed that all line-redrawing bugs have been fixed.  If you see E fail
to correctly display one or more lines, please report to ME exactly what
you did to make it lose.  Thanks--ME.

Also fixed is the failure to redraw the attach buffer when ⊗-⊗C is given
with more than 8 lines attached.

∂4/22/76 -- Lots of bugs fixed, mostly in /N and multipage modes.

Approximately 20 bugs have been fixed, including at least 3 in /N mode
operation and at least 10 in multipage mode operation.  It is now
believed that both of these modes should be completely reliable!
Multipage mode involves having two or more consecutive pages in core at
the same time and is invoked by the commands β<FORM>, XINSERT, XAPPEND,
XDELETE and XMARK; all of these commands were formerly capable of causing
trouble, although the trouble in certain cases would not be noticed until
you tried to write out a page.  All of these should work in all cases
now, including multipage mode in a /N file.

Other new features:

The line and page numbers on the trailer line are now kept current with
respect to the arrow line, even in multipage mode.  The header line now
lists the range of pages in core in multipage mode, and the line number
that appears on the header line is relative to the beginning of the whole
range, not the arrow line's page.  The total number of pages displayed on
the trailer line in a non-formatted file (/R) is changed from "?" to the
actual number as soon as the actual number is known.  The record and
character counts usually displayed on the trailer line are suppressed
(replaced by ?R) when editing a non-formatted file (in /R mode).

The R command (Replace attach buffer) no longer leaves multipage mode if
the original page from which the attach buffer came is one of several
pages in core.

The new XALIAS command can be used to change your alias PPN.  It takes a
following text argument in exactly the same form as the system ALIAS
command: 1) PRJ to set project to PRJ and programmer to logged in name,
2) PRJ, to set project to PRJ and retain previous alias programmer name,
and 3) PRJ,PRG to set both project and programmer.  Note that the XALIGN
command forces at least ALIA to be used in the name of the XALIAS
command.  The XALIAS command types out your new ALIAS on both the current
piece of paper and PP 0 so that you will see your changed alias when you
exit.

Saying "N" to all three questions about formatting a non-formatted file
that you are trying to switch to no longers causes the attach buffer to
be spuriously discarded and the screen to be reset to the normal piece of
paper.

If you switch away from a /R file when you have made changes to the
current page, E still does not write out that page nor does it ask you
what mode you intended, BUT it does give a warning that the changed text
was not written out.

The new #XAUTOBURP command sets the threshold number of records of nulls
for autoburping to the number # specified.  A zero or negative arg
disables autoburping entirely.  An arg of just "+" sets the threshold to
its default value, which is currently 19.  If no arg is given, E will
simply type out the current threshold.  (A page to be written out that
has the threshold number of records of nulls, or more, will be
automatically burped to delete all records of nulls from that page.)

αD used in macros to delete a CRLF has been improved.  To work
completely, however, it must be preceded by a α<tab> (or αK<cr> or
αS<cr>) which is not separated from the αD by any character with control
bits.  E.g., α<tab>XYZαD and α<tab><bs>XαD will work properly, but
α<tab>α<bs>XαD will not do the right thing in certain cases.  Note that
it is only in macros that αD doesn't always work--plain typeahead still
works perfectly.  (The effect of bad uses of αD is that characters after
the αD in the macro definition up through the first activation character
following are not "typed" until the macro expansion ends, which can be
particularly noticeable if you use a repeat argument on the ⊗Y command.)

A warning message is generated at initialization time if the upper
segment is not write protected or if the upper segment checksum is not
correct.

∂4/23/76 -- Bug fix to attaching text in non formatted file.
Attaching text in a non-formatted file and then switching files and
putting down the attached text used to cause a "former WRITE CODE
ERROR" if the page in the non-formatted file did not end with a CRLF.
This bug has been fixed.

∂4/27/76 -- Filename scanner cleaned up.

Partially specified filenames are now parsed correctly.  This mainly
fixes the parsing of filenames like "FOO[1]", in which the programmer
name assumed is now always your alias programmer name.  Also, devices
(such as "UDP:") found in TMPCOR files are no longer sticky--you must
specify UDP: each time you want it.

∂4/27/76 -- Change to effect of αL and αP in multipage mode.
(Note that αβL and αβP are unchanged.  TTY users note that the effect you
now get with the L and P commands is that of αL and αP as described below.)

The αL command will go to the specified line on the current page, which
is defined as the page the line you are pointing to is on.  Thus if you
are on line 3 of page 4, then ⊗1⊗3αL will move the arrow down 10 lines
(to line 13), but not beyond the pagemark for page 5, whose line is
considered to be on page 4 like the row of asterisks at the end of the
last page in core.  The αβL command moves to the specified line within
ALL of the text in core, treating pagemark lines like normal lines; for
example, just αβL will always move to line 1 of the first page in core
whereas αL will always move to line 1 of the current page (defined by the
arrow).  If you have only one page in core, αL and αβL are identical.

The αP command will not flush the incore page(s) if the requested page
is already in core.  In this case, the arrow will simply move to line 1
of the specified page.  The αβP command always flushes the incore pages
and reads in exactly the one page requested.

∂4/30/76 -- αβI and αβ<cr> at beginning of line editor changed.
These commands no longer insert a blank line ahead of the new blank
line about to be edited in line insert mode.  This change only
affects the results of giving either of these commands from the line
editor when the cursor is at the beginning of the line.

Also, a bug has been fixed that previously prevented ending a find
command with a line editor command when the current line was either
blank, a pagemark, or the row of asterisks at the end of a page.

∂5/11/76 -- XSPOOL XXSPOOL XMAIL XSEND XREMIND now take numerical args.
These commands used to output as text either the whole attach buffer
or the whole page.  Now, however, a preceding numerical argument to
any of these commands specifies the number of lines to be output
(spooled or mailed).  If any text is currently attached, the output
will consist of the specified number of lines at the beginning of the
attach buffer; otherwise, the output will consist of the specified
number of lines (from the page) starting at the current line.  As
before, if no argument is given, the output is either the whole
attach buffer (if any) or the whole page.  The argument to these
commands can be specified by a search command (⊗F ⊗XFIND or ⊗∂) just
as can be done with the commands ⊗A (attach) ⊗C (copy) and certain
others.  For example, ⊗∂⊗XMAIL PRG<cr> will mail the current message
to PRG.

Note: a zero or negative argument to MAIL, SEND, or REMIND can be
used to send a one-line message entirely from the X-command line (no
text from page or attach buffer sent).  To do this, you MUST separate
the message text on the command line from the command itself with a
Formfeed.  For example, ⊗0⊗XSEND ME<ff>Hey, it really works!<cr> will
send ME the message "Hey, it really works!"  This technique can also
be used to include a subject line or initial text line ahead of the
message text being output from the page (or attach buffer).  That is,
⊗∂⊗XMAIL/SUBJECT PRG<ff>Sending mail from E<cr> will mail the current
message to PRG with the subject "Sending mail from E".

A bug has been fixed in macro expansions that involved typing the
line editor command αK or αS as the first character on a line.

The ⊗V command now redraws the screen immediately, whether typeahead
is present or not.

∂5/18/76 -- XSAVE command added--writes out page & attach buffer in E$SAVE.TXT.
This new command saves the current state of your incore page text,
including any attach buffer text, in the file E$SAVE.TXT on your LOGIN
disk area.  This is now done automatically for almost all fatal errors
detected by E; when it happens as a result of such an error, a message
to that effect is typed out.  (The file E$SAVE.TXT may NOT be written
out successfully if the error is detected again while writing this
file.)  Note that any previous E$SAVE.TXT file is superseded (replaced)
by the new file.  Note also that this command (and its automatic call
upon error detection) does NOT touch the file you currently have open
for editing.

A bug has been fixed that (rarely) caused rippling when unnecessary.

The maximum size of a macro definition has been doubled to 239 characters.

∂5/25/76 -- Leading tab on line means new paragraph during justification.
A bug has been fixed that caused lines beginning with a tab not to be
interpreted as the beginning of new paragraphs in justification.  Tabs were
correctly recognized previously only on the line the arrow pointed to.

∂5/27/76 -- New directory search command: ⊗F<string>⊗: finds labels.

This command will search the directory and go to the page for which the
<string> is found.  Then it will search that page for an occurrence of
<string> immediately followed by any of ":", "=", or "←".  Thus, labels
such as START: or definitions such as START=10 or START←10 can be
found easily if START occurs on the page's first (directory) line--use
the command: ⊗FSTART⊗: (as usual, αβF finds a delimited string; the ":"
will be detected correctly if it is the ending delimiter).

Also, both the ⊗F⊗P and ⊗F⊗: directory search commands has another form
to cause E to search only directory lines for pages following the
current incore page(s).  The form to get this effect is ⊗F<string>⊗+⊗P
or ⊗F<string>⊗+⊗: (that is, precede the ⊗P or ⊗: immediately with ⊗+).
This is useful when a string occurs on several directory lines.

∂6/1/76 -- Minor bugs/features fixed.

⊗∂αβD given on an empty incore page will now delete the page itself.
Formerly, this command was a no-op on a empty page.

An ET<cr> command which finds that the file named in TMPCOR is gone
(e.g., deleted) will no longer look for another file with different
extension.

The ⊗∂ command will not go beyond an incore pagemark.

αβD has been repaired to preserve the location of marks beyond the
line(s) that are being deleted.

The directory search commands (⊗F⊗P and ⊗F⊗:) now work correctly in
multipage mode.

∂6/3/76  --  <CR> at end of page no longer adds a line--use β<CR> or αβ<CR>.

This change allows <CR> to be used near the end of a page without the
risk of changing the page (setting the W flag) by accident.  To add a
blank line when you are at the end of a page, use β<CR>.  To add several
blank lines, use ⊗#αβ<CR> (which adds # blank lines).  To add text at
the end of the page, simply type over the row of stars as before; when
you activate that line with anything but <ALT>, its text will be on a
newly added line just like always.  To add lots of text at the end of a
page (or, for that matter, anywhere in a page), type αβ<CR> to enter
line insert mode.  MAIL your COMPLAINTS or COMPLIMENTS to ME.

Now, when you leave a READONLY file from a page which had been altered
(W flag on), you get the standard message:
	SORRY -- PAGE HAS BEEN ALTERED -- PLEASE REAFFIRM MODE.
You can then type either READONLY or READWRITE to determine whether the
altered page will be written out.  Formerly, changes to such a page
where simply ignored and you had no chance to write them out after you
had given the command to change files.

The ε and λ commands not preceded by a numeric argument now update the
display before reading the new filename unless a whole line (the new
filename) has been typed ahead.

An <ALT> response to any of the questions about formatting implies NO to
that question and suppresses any remaining questions, thus letting you
immediately enter a new filename without having to say NO three times.

∂6/26/76 -- ⊗XHEIGHT command

This new command, preceded by a numerical argument, sets the number
of lines of display to use for text.  This is especially useful on
IIIs to reduce flicker.  For example, ⊗2⊗0⊗XHEIGHT<cr> will cause E
to use 20 lines for displaying text.  Minimum size is 10 lines (since
attach buffer can use 8).  Maximum is terminal dependent.  ⊗XHEIGHT
without an argument will reset to normal size.

∂8/8/76 -- A potential bug occasionally resulting from deleting several
in-core pagemarks has been fixed.

∂8/20/76 -- DMs are now considered displays by E.

There are 17 lines for text in E on DMs.  There is no arrow for the
current line; only the position of the cursor under the first character
of the line indicates the "arrow" line.  Thus there is no easy way to
tell the difference between editing a line with the cursor under the
first character and not being inside the line.  Later, the DM line
editor will be displayed as bold, so it will be easy to tell when you
are inside a line.

Since there is no arrow, there is no double arrow for line insert mode,
and there is essentially no way to detect that you are in line insert
mode, except that when you type CR, a new line is inserted.  However,
this shouldn't cause any difficulty since the commands legal in line
insert mode are exactly the same as those legal in line edit mode.

Attached lines are indicated by displaying them as bold or blinking
(blinking if you haven't had your DM modified, bold if you have) instead
of preceding them with a vertical bar.  Attached blank lines are
slightly difficult to detect since a bold or blinking blank is still
blank.  In attach mode, the cursor is returned to the page printer at
the bottom of the page.

Whenever E has to redraw the whole screen on a DM, any display output
still going is flushed since it would be overwritten anyway.

When E doesn't have to redraw the whole screen, it is possible that it
might fail to leave the line editor correctly displayed if you have
typed ahead.  You can always correct the line editor display by typing
ESC R (i.e., NULL R).  If the screen text displayed is also screwed up
somehow, αV (i.e., EDIT V) will redraw the screen correctly.

∂8/20/76 -- Line editor no longer erased on DD/DM when activated while editing text.

Thus, the version of the line editor that appeared when you activated it
will be left on the screen.  This is convenient if, for instance, you
are doing multi-page searches from the line editor and want to look at
the final version of the line you edited while the search is running.
Note that if you typed ahead a lot and it had not all appeared yet when
you activated, then you may not actually see the final version of the line.

∂9/5/76 -- Major changes have been made to the JUSTification commands, and
7 new  commands have  been added.   The new  features greatly  extend  the
usefullness of  these  commands so  that  text  in unusual  forms  can  be
handled.  Many of the defects and  shortcomings of the older version  have
been corrected.  Report any bugs to ALS.

    The more  important changes  that  will affect  all users  are  listed
below.

1)  Left margins are now  specified as indents,  not as column  positions,
    that is, if one wishes  to specify that the line  is to start with  no
    indent one  types 0  not  1 as  formerly.   This makes  all  commmands
    consistent.  Right  margins are  still in  terms of  column  position.
    Specifications are now  always sticky and  the initial default  values
    are 4,0,74.

2)  It is now possible  to specify the  number of blank  lines to be  used
    between paragraphs.  The default condition is (as before) for there to
    be the same number of blank lines in the justified text as there  were
    in the original and this is signalled by a -1 as the fourth number  in
    the specifying  string (4,0,74,-1).   Existing specifications  can  be
    seen by typing a justifying command specifying 0 lines.

3)  Switches are now used to change the way that  E  detects the start  of
    a new paragraph.  The default  switch N (for Normal) approximates  the
    conditions formerly used.  Blank lines still signal a paragraph  break
    (as they do  for all  switches).  Instead of  requiring a  TAB as  the
    first character (when bank  lines are not used)  any indent ≥2 is  now
    taken as  a crown  line.  Other  switches allow   E  to  asertain  the
    existing indent conditions from  the text itself and  to use these,  A
    for arbitrary, conditions to signal new paragraphs.  (Try typing ⊗0⊗XJU
    to see how the switch setting is reported.)  Read p. 16  before trying
    to use any other switches.  People who like to use blank lines only as
    new-paragraph indicators and who want their text left with no indents
    can achieve this condition by typing A 0 as a following string after
    their first JUST command (separated fron the command name by a space).  

   (See p. 32 for a longer list of changes and  p. 16:18 for full details)

∂9/20/76 -- DM line moving hardware utilized.

On DMs, when lines on the screen simply need to be moved, the DM
insert/delete hardware for lines is used to avoid having to redraw any more
text than necessary.  This involves some attempt at optimization of which
lines get moved and which redrawn when lines on the screen need to be
moved across each other (which cannot be done).  Bugs to ME.

∂10/4/76 -- Improvement in use of DM hardware; "∞" accepted in switches.

You can now use "∞" (infinity-sign) as a value in a switch, e.g., /∞P.
It represents a very large positive number and cannot be negated.

On DMs, the line-moving hardware is now NOT used unless it results in
saving at least 10 output characters.

∂10/10/76 -- Three minor bugs fixed.

1)Fix to ⊗F⊗P to remember control-bits on ⊗F for subsequent ⊗* commands.
2)Test for line-too-long-for-line-editor made slightly more conservative.
3)Fix to not screw up when FF found in last word of record in /R file.

∂10/21/76 -- New /S switch; also /N switch no longer needs confirmation.

1)Formatting of /N files no longer needs to be confirmed by user.
2)New switch /S means edit new file at Same line & page as at in current file;
  for example, if you are at line 12 on page 15 if file FOO and say
  ⊗εBAZ/S<cr>, then the arrow will be positioned at line 12 on page 15 of BAZ.

∂11/15/76 -- New command ⊗XEXACT causes searches to distinguish case of letters.

The new extended command ⊗XEXACT causes any subsequent searches to
distinguish between upper and lower case letters.  Searches will succeed
only if the searched text contains the same cases of letters as given in
the search string.  The command ⊗-⊗XEXACT will disable this feature and
thus cause searches to ignore the case of letters.

Also, the default paragraph indent for the justification commands has been
changed back to its original value of zero (it had recently been 4).

1977

∂1/5/77 -- A bug in XBREAK has been fixed.  If an attempt is made to break
a line in the middle of a TAB the break precedes the TAB except for the
unusual case where the first character is a TAB and the BREAK value has been set
at less than 8.

∂1/8/77 -- Two new commands XTIN and XSIN have been added.  TIN puts
Tabs IN, in place of spaces when this will save space and when it is
allowable.  This may make it possible to save space on the disk, 
providing, of course, that the TIN command is followed by an XBURP
command.  SIN puts Spaces IN, in place of TABS.  See page 19 for details.
Either command may take an argument, with the default value being the entire
page or ATTACHment.

∂1/12/77 -- The substitute command now handles long lines and will not let
you substitute for a CR (found, for example, by the use of the "any
delimiter" symbol "|").

∂1/15/77 -- MARKS on deleted or attached lines are now moved to the first line
after the deletion or attachment. XCANCEL restores marks with the restored page,
of course, only if the marks had been previously saved by an αβ. command or by
switching pages.

∂1/17/77 -- Two very old bugs fixed:  one in free storage routines and one
in directory line maker (called when you change first line on page or edit
/R an unformatted file).  Also, ∃ command now always reports the index
number of the Home file.

∂1/21/77 -- Line MARKS now stay with the right lines during αβXAPPEND, β<FF>
and αβD (as applied to an in-core FF) operations.  They are still adversely
affected by XBREAK, XJOIN, XJUST and related commands.

∂2/5/77 -- Two new commands ⊗XNDFAIL and XNDSAIL generate and insert a new
first line (appropriate for the directory) in appropriate FAIL and SAIL
formats for labels and for specified categories.  No new line will be
generated if the page is empty.

These commands apply to the current page but if more than one page is in
core (through the use of XAPPEND or **<ff> commands) then the information
will be gathered from only that page in which the current line is located and
the information will appear as a new first line on this page. Note: this was
changed on 3/15/77.

	The XNDSAIL command may be used as an information source in a variety
of different ways.  It is not intended for use with text material.

XNDFail, given with a <cr> termination, lists all labels.
	Given with a α<cr> it lists only those labels that have one or more ↑'s
	Given with αβ<cr> it lists only those labels with ↑↑ (or more).

	This command does not take arguments (unlike XNDS).  If the command is
	typed with a prefix argument of 0, it states the conditions outlined
	above and is otherwise a NO-OP.

XNDSail, given with a <cr> termination, lists all words that are preceded by
	certain catagory words, the default words being RECORD!CLASS,
	RECORD_CLASS and PROCEDURE.

	Having found a catagory word the program lists the first word following
	the catagory word and then ignores any following text until either a comma
	or a semicolon is encountered.  When a semicolon is encountered the search
	for a new catagory word is resumed.  If, on the other hand, a comma is
	encountered (not however within parens) then the next word is taken as
	another example of the catagory and it is listed, preceded by a comma.
	Listings following different catagory words are saparated by spaces.

	One additional category may be specified by typing its name after a
		space following the command name and terminating it by a <cr>.
	Up to 4 new categories may be specified with the categories after
		the first one replacing the default categories, one by one.
		To retain some default categories the list is terminated by a <cr>
	If the typed list of categories is terminated by ⊗<cr> then only the
		typed categories are used, and the default ones are eliminated.
	If the command is terminated by ⊗<cr> without any typed category names
		then the original default categories are reinstated.
	If given with a prefix argument of 0 this command will accept any typed
		categories and then will list the categories that are in effect
		without generating a text line.

∂2/11/77 -- The system command ET? now gets the E manual E.ALS[UP,DOC] directly.
		
∂2/16/77 -- The method of loading E on an ET command has been changed.  The
 system no longer needs to find space for an upper segment which it would
 end up not needing, if some one else is already useing E.  Now only a lower
 segment is loaded, and code in this section checks to see if there is already
 an upper segment.  If there is, no new segment is loaded.

∂3/8/77 -- At the end of a line of text, the following line editor commands
no longer activate uselessly:  α<TAB>, αS, αK, αR, and META-<plain char>.

∂3/8/77 -- Reporting of FIND and related commands has been augmented to
show "(observing case)" or "(ignoring case)" depending on the state of the
EXACT switch.  The fact that the search was for a delimited string is now
indicated by the use of "|" instead of the usual "\" delimiters (which are
still used for an undelimited string search).

Furthermore, a zero argument to any of the Find or Substitute commands
(⊗0⊗F, ⊗0⊗XFIND, ⊗0⊗*, ⊗0⊗\) will simply cause the search and/or
substitute string for the given command to be typed out.  Note that ⊗0⊗F
thus does not take a following search string argument.

∂3/8/77 -- E can now be in any one of three possible reporting states.
The reporting state determines how much information E types out at various
times.  The three states are: the normal default state, a verbose state
achieved by the command ⊗XVERBOSE and a terse state achieved by the
command ⊗XTERSE.  The normal state can be restored by giving either
⊗-⊗XVERBOSE or ⊗-⊗XTERSE.  You can find out the current state by giving
either ⊗0⊗XVERBOSE or ⊗0⊗XTERSE.  The normal state now does somewhat less
reporting (that is, less typeout) than formerly, especially for the
parenthesis commands.  However, a new command ⊗XPINFO has been added to
give you the details of the last parenthesis command (or use ⊗XVERBOSE).

No error messages are ever suppressed by the terse state.

The following remarks are currently suppressed only in the Terse state.

	Only one MARK and you are there!
	There are no marks!
	Already marked!
	Not marked!
	All marks have been cleared.
	Removing last MARK on this page.
	MARKS on this page only have been cleared.
	Page is empty.  (XNDFAIL, XNDSAIL cmds)
	Aborting macro ... (error occurred in macro while in ⊗XSTOPONE mode)
	Abort of # macros requested from ... (⊗#⊗XABORT cmd given)

The following remarks are typed out only in the Verbose state.

	N characters added/removed (justify commands)
	Line now has N chars. (join)
	You have replaced XXX with YYY (substitute)
	(detailed reporting of the parenthesis commands--use new ⊗XPINFO)
	The new line of N chars lists M items (new directory line commands)
	Calling ... (calling a macro)
	Ending ... (a macro has finished)

Suggestions other informational remarks to suppress will be accepted.

∂3/15/77 -- Bunch of small fixes and a couple of new features.
 Left- and right-arrow cmds made to use search length arg.
 "I" displayed on header line while in line-insert mode (especially for DMs).
 Fix to prevent inputting of BS in a line of text.
 Multipage fix to NDFAIL and NDSAIL commands.
 Fix to updating of trailer line.
 Fix to XRUN and XRSYS cmds to use default extension of DMP to return RPG starts.
 Fix for ambiguous extended command given from line editor.

∂3/30/77 -- Preparations for expanded macro facility.

⊗XEMPTY and ⊗XNONEMPTY commands have been added to move to next empty or
non-empty line.  A repeat argument will cause these commands to look for
that many empty (or non-empty lines).  A negative arg will cause the
search to go backwards.  A positive arg (or default of 1) will ignore the
current line and search from the next line, but will not cross a
subsequent incore pagemark; hence the search is of only one page.  These
commands can also be used, both inside and outside macros, to tell if the
current line is empty--use a zero arg:  ⊗0⊗XEMPTY is a no-op if the
current line is empty, but will say something and stop any running macro
if the current line is non-empty; ⊗0⊗XNONEMPTY is a no-op if the current
line is non-empty, but will say something and stop any running macro if the
current line is empty.  The reason for these new commands is that soon it
will become legal for line editor commands to be used to get into the line
editor on empty lines, thus those commands will no longer stop macros on
empty lines.

 Also:

 E now enables wholine filestatus during rippling.
 Some multipage fixes to justify and TIN and SIN and TABLE commands are now in.
 CETV FOO←BAZ has been made equivalent to ETV FOO←BAZ.
 Line too long for line editor tells how long it is.

∂4/4/77 -- Several minor bugs fixed.
 Location to return to by XBACKGO command preserved over page deletion.
 Fix to CONTINUE after exit (and XCLOSE) to ensure file hasn't changed.
 Fix to CONTINUE after LOOKUP error.
 Fix to XBURP command and autoburping to make them work in all cases.
 Fix to avoid infinite loop when detached.

∂4/7/77 -- More preparation for multiple macros, plus some minor improvements.

 Line editor commands have been made legal when pointing to an empty
 line.  The important things to note are (1) that αD given when pointing
 to an empty line will delete the CRLF and leave you with the following
 line in the line editor, (2) that αI given when pointing to an empty
 line will enter line insert mode there, and (3) the commands αS and αK
 given when pointing to an empty line still take a following arg (to
 search or kill to) although such a search or kill on an empty line is a
 no-op.

 An "A" is now displayed on the header line when in attach mode.
 Display lines not used with a short page in core on a DM are correctly erased.

∂4/10/77 -- Change to ⊗XMARK command in attach mode at top of page.
 To facilitate moving pages around in files, the ⊗XMARK command given
 while in attach mode first puts down the attach buffer and then
 inserts the pagemark.  However, now if you are at the beginning of a
 page when you do this, the pagemark will be inserted beyond the
 put-down attach buffer, so that in this case, you will end up with
 the lines that were previously in the attach buffer now on a page by
 themselves.  Formerly, in this case you would have ended up with an
 empty page with the ex-attach-buffer text on the next page.

 A bug has been fixed which caused a line not to be redisplayed when
 altmode was typed from line insert mode on a DM.

∂4/28/77 -- One new command (!) and several small fixes.

The exclamation-point (!) command has been added to operate on paragraphs
in the same way that the partial-sign (∂) command operates on messages.

    NOTE: "PARAGRAPH" here means a contiguous group of non-empty
    lines plus certain surrounding empty lines (if any).
    Included in the paragraph of the ! command are: one empty
    line (if any) at the beginning of the paragraph and all but
    one of any empty lines at the end of the paragraph.  Thus
    within a group of continguous EMPTY lines, only the last
    line is really considered by the ! command to be non-empty.

The two commands ! and ∂ don't actually do anything until you type another
command.  If that following command accepts a search distance argument,
then the effective argument will be the number of lines in the current
paragraph (! command) or message (∂ command); for example, ⊗!⊗XJUST<cr>
will justify the current "paragraph".  If the command that follows ⊗! or
⊗∂ does NOT accept a search distance argument, then that command is
carried out after moving to the beginning of the next paragraph (!) or
message (∂).  The one case in which the ! and ∂ commands don't take a
following command is when a preceding zero argument has been supplied
(that is, ⊗0⊗! or ⊗0⊗∂), in which case the command immediately moves to
the beginning of the current paragraph (!) or message (∂).  Like the ∂
command, the ! command will delete the current pagemark if you attach or
delete all the text on the page with this command.

Other changes to E:

The <vt> character is now treated as an ordinary character by the various
justification type commands (XJUST, XJFILL, XTIN, etc).  This character
will display as an integral sign although it is typed out or listed as a
vertical tab (i.e., several linefeeds).

Two minor justification bugs have been fixed.  The arrow now always stays
where it should on XSIN commands, and two spaces are now always left after
punctuation ending a sentence during XJUST commands even if the
punctuation occurred at the end of a line in the original text.

PAS (PASCAL) has been added to list of standard filename extensions looked for.

ETV <FILE1>→<FILE2> now works again (provided <FILE1> has a directory).
This copies <FILE1> into <FILE2> and then edits <FILE1>.

Altmode typed in the middle of a line in line insert mode now saves the
text of that line.  Thus altmode given in line insert mode will now only
delete the current line if that line is completely empty.

∂5/6/77 -- Line marks now saved and restored via TMPCOR file; other minor fixes.

 A new switch of the form /a,bM places a mark on page a at line b.
 This is used in E's TMPCOR file to save and restore all line marks.

 Old bug fixed that caused wrong device to be kept open when file not found.
 Cleaned up αM command to avoid losing if page or line of mark doesn't exist.
 Line editor cmds made illegal once again if pointing to end of page (for macros).
 ⊗XBACKGO fixed for several cases where it used to return to the wrong right place.

∂5/9/77 -- Macro expansion fixed to know about new line editor commands.

 Also, ⊗XXSPOOL now uses the system default font.

∂6/2/77 -- Improved macro facilities with named, recursive macros.  See pp. 25-26.

 Also:

 RPG startup with zero filename causes E to read (and later write) TMPCOR file.
 Bug fix to ! and ∂ commands when given from inside line editor.
 Minor bug fix to NDFAIL,NDSAIL commands in case where previous dir line was empty.
 Exiting not allowed during macro expansion.
 Blank lines at end of page now considered part of prev paragraph by ⊗! command.
 Fixes to prevent spurious /N or /#F typed out when file not found.
 Fix to return home to right place when left home with multiple pages in core.

∂7/3/77 -- Greatly improved disk buffering (using caches) on input and output.

 Also:

 Added .MID (MIDAS) to list of desired extensions.
 Added .FNT and .CFT (fonts) to list of undesired extensions.
 Attaching/copying/releasing fixed for case where next line is a pagemark.
 Fix to avoid free storage error if indirect file ends with incomplete macro def.
 Fix to infinite repeat arg for macro calls; max repeat arg limited to 131064.

∂7/14/77 -- One new command, a slight mod to the ⊗! command, and a fix to ⊗XBREAK.

 ⊗XWRITTEN command added to find out when the current file was previously
   written and who did it (PPN and jobname).
 The ⊗! command now never deletes a pagemark (the ⊗∂ command still does).
 The ⊗XBREAK command now breaks properly lines in which a tab reaches
   exactly to the break limit.

∂7/27/77 -- Extended searches in unformatted files are much improved.

 Formerly, it was possible for an extended search in an unformatted file
 to fail to find an existing occurrence of the search string, or worse,
 for an ill mem ref to happen when it did find it.  Both of these bugs
 have been fixed.  However, note that extended searches in unformatted
 files still cannot go beyond the last page that you have looked at.
 The directory is used for finding where each page starts in an extended
 search, and the directory will only be complete out to the last page
 that you have actually gone to.  Thus, to make sure extended searches
 can go all the way to the end of the file, you should first move to the
 last page of the file (allowing E to generate the complete directory)
 with a command like ⊗∞⊗P.  This does not apply to any file that already
 has a valid directory, nor to any file being edited /N.

Also, a couple of other bugs fixed:

 Fix to prevent infinite loop when doing ⊗-⊗P from directory page in
 unformatted file.

 Minor fix to filehack parser.

∂8/3/77 -- Couple of rare bugs fixed.

 Fix to ⊗XAPPEND to disallow editing of pagemark from newly appended page.

 Fix to ⊗Q command to do nothing if previous line is a pagemark.

∂8/14/77 -- Minor fixes.

 Fix to make sure trailer values get updated when switching files.
 Doesn't say "Are you sure that ... will approve" if not overwriting old file.
 Slight fix to DM display routine to force redrawing line below line editor.
 Fix to avoid spurious retyping of last line on non-displays.

∂8/19/77 -- Improvements for non-display users; slight changes to old commands.

1. To allow substitution commands to be given from non-displays, E now
accepts a LINEFEED AT THE END OF A SEARCH STRING to indicate that a
SUBSTITUTION STRING IS COMING next.  Thus, the following commands are
equivalent (although the first is difficult or impossible to type on a
non-display):

	αFsearch stringα\substitute string<cr>
	αFsearch string<lf>substitute string<cr>

Similarly, the following multipage substitute commands are equivalent:

	αXFIND search stringα\substitute string<cr>
	αXFIND search string<lf>substitute string<cr>

2. A non-display user can now execute commands that require use of
particular combinations of the "bucky" bits CONTROL and META.  Two new
extended commands are used to specify what bucky bits are to be assumed
with the next command character.

	⊗XCONTROL<cr>	    causes the next character to have only
			    the bucky bit CONTROL.

	⊗XMETACONTROL<cr>   causes the next character to have both
			    bucky bits META and CONTROL.

If neither of these commands is used on a non-display, a command that
makes a distinction between CONTROL and META-CONTROL will execute the
CONTROL version; and a command that distinguishes between any bucky bits
and none at all will execute the no-bucky-bit version.

Here is an example of using the ⊗XMETACONTROL command to do a delimited
search (and a substitution); the command

	XMETA<cr>Fthis<lf>that<cr>

will find a delimited "this" and substitute "that".

3. To facilitate unambiguous abbreviation of the new ⊗XCONTROL command,
the old ⊗XCONTINUE command for resuming macro expansion has been renamed
to ⊗XRESUME.

4. Two new responses are now acceptable replies to the various Yes-or-No
questions about formatting that E asks when you try to edit a file that
doesn't have a directory.  You can say /R to have E edit the file in
Readonly mode, or you can say /N to have E edit the file in No-directory
mode.  NEITHER OF THESE TAKES A CARRIAGE-RETURN.  These new responses save
you the trouble of waiting for the appropriate question to come up.  They
are also useful if you accidentally answer the appropriate question with
a No.

5. ESC I will now interrupt any multiple substitution (even a one-page
type) after the next substitution.

∂8/20/77 -- New ⊗O command is just like ⊗XBACKGO<cr>--goes back to Old page.

 Also:

 ⊗XBACKGO command fixed to remember place to return to over ⊗XAPPEND command.
 Rare bug in file macros fixed (used to cause ill mem refs).

∂8/23/77 -- Bug in /R/F mode fixed.

∂9/5/77 -- Repeated macros can now be made faster; other minor new features.

 New command ⊗XCHECK enables checking of free storage (currently the default);
   ⊗-⊗XCHECK disables free storage checking; ⊗0⊗XCHECK reports the
   current condition of free storage checking.  Macros which are to be
   executed many times (e.g., 100 or more) will often be executed
   significantly faster if free storage checking has been disabled.  It
   is recommended, however, that free storage checking normally be left
   enabled (except when you are repeatedly executing a macro) because
   internal E errors are detected much faster that way, with less chance
   for clobberage of your file.

 Macro expansion fixed for use of αI not at end of line editor in macro.
 Filehack \GOLD added for GRIPES.OLD[2,2].  \G still gets GRIPES.TXT[2,2].
 ⊗XAPPEND command now gives error message if on dir page or in unformatted file.
 ⊗0⊗XEXACT now reports current condition of case-checking in searches.

∂9/25/77 -- New commands αN, αβN; modified commands αO, αβO; other minor changes.

 E now remembers the PREVIOUS TWO DIFFERENT PAGES that you have been on
 and the PREVIOUS TWO DIFFERENT LINES that you have been at on the current
 incore page(s).  Note: When you move 4 or less lines up or down, E does not
 consider you to have moved enough to warrant saving your old line.  Also,
 the saved locations of the previous two lines are not corrected for line
 insertions and deletions.

   To return to the Previous Page, use αO.
   To return to the Second Previous Page, use either αβO or ⊗2⊗O.

   To return to the Previous Line, use αN.
   To return to the Second Previous Line, use either αβN or ⊗2⊗N.

 The forms ⊗2⊗O and ⊗2⊗N are easier to use than αβO and αβN on NON-DISPLAYS.
 Also, someday E may remember more than two previous places, and the commands
 ⊗#⊗O and ⊗#⊗N will be used to get to the older places.

 The ⊗XBACKGO command is identical with ⊗O (i.e., it distinguishes
 between α and αβ).

Other new features:

 ⊗#αβK now kills # lines at the front of the attach buffer.

 The αβV cmd now erases the whole screen; ⊗V now also redraws page printer.

 CONTINuing (after exiting) now works even if the file has been changed by
 someone else after you exited!

 If E crashes without trying to write the crash file E$SAVE.TXT, the
 REENTER monitor command can be used to make E write the E$SAVE.TXT
 file (which will contain all of the incore text).

 If the file is write-protected from you, a warning is given when opening
 it in READWRITE mode and whenever you cause the "W" flag to be set.

 Any /F switch given on source filename (eg, A←B/F) applies to destination
 file instead.

∂9/29/77 -- ⊗P command from last page no longer causes page to be re-read.

 This command given on the last page still causes the incore page(s)
 to be written out, but it no longer 1) causes multiple pages to be
 lost from core, 2) moves you to the top of the page, nor 3) causes
 the screen to be redisplayed.

∂10/2/77 -- RPG startup of E now accepts device of edit file in AC 12.

 Formerly only files on device DSK: could be edited from RPG startups.
 See page 23.

∂11/17/77 -- Three minor bugs fixed.

 Bug fix to ⊗XEXECUTE of /N file to avoid losing first character of file.
 Bug fix to αβT and ⊗-⊗J commands given from line editor that wrapped around.
 Bug fix to ⊗#αβK command to avoid screwing up internal character count.

∂11/22/77 -- Certain filehacks now imply readonly mode.

The filehacks implying /R mode are:
    \DIGEST   \NOTICE  \DAY  \DOWN  \NAP  \NS  \PLAN  \PLN
Note that the default /R can be overridden by an explicit /-R.

∂12/7/77 -- READ command changed to BOOK.  READ now reads documentation files.

 The monitor command BOOK has replaced READ for reading a book and having
 E remember your place in the book with a .BKP file.

 The monitor command

	 READ <filename>

 searches the system documentation disk areas for the file specified and
 then edits in Readonly mode whatever file was found.  Thus you don't
 need to specify either the extension or the PPN of documentation files.
 If no extension is given, then files with extensions other than UPD
 will be found before UPD files.  However, any explicit extension,
 project, or PPN given will be observed.  If an extension is given but no
 PPN, E will look for the particular file on any of the documentation
 areas.  If a project is given, say PRJ, then E will look for the file
 on [PRJ,DOC].  If a programmer name is given, then no searching of
 documentation areas will be done and normal PPN scanning applies and
 the READ will merely force the file to be edited in Readonly mode.

 The switch /D (for Document) does the same thing as the READ command
 and is useful when giving a filename when switching files.

 Examples:
  READ UUO       ;Edits the UUO Manual file in Readonly mode.
  ⊗εMONCOM/D     ;Switches to the Monitor Command Manual in Readonly mode.
  READ UUO.UPD   ;Edits /R the update file for the UUO Manual.
  READ NOTICE/E  ;Edits /R the NEWS program's text file, starting at the End.

 Other new stuff:

 Verification of the need to reformat a file is suppressed in /F mode.
 The sense of the Yes/No question about keeping an old (invalid)
   directory has been inverted for consistency.  Say "Y" to flush the
   old directory text.
 A file with a "bad" extension (eg, .DMP) will now be edited if no file
   with a good extension exists when you give a file's name without an
   extension.
 The initial default PPN for ⊗XEXECUTE and ⊗XPUTDEFS is your logged in PPN.
 Macros defined during macro expansion are not typed out.  This
   particularly effects macros defined in an EXECUTE file.  A suggestion
   is that you put the command α0αXDEFINE⊗↔ at the end of your EINIT.CMD
   file to have the names of all defined macros typed out.